﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ObTookit.HighLight
{
    public class CsHighLight : BaseHighLight
    {
        public void SetWords()
        {
            DefaultColor = Color.Black;
            Keywords = new string[] { "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "decimal", "default", "delegate", "do", "double", "else", "enum", "event", "explicit", "extern", "false", "finally", "fixed", "float", "for", "foreach", "goto", "if", "implicit", "in", "int", "interface", "internal", "is", "lock", "long", "namespace", "new", "null", "object", "operator", "out", "out", "override", "params", "private", "protected", "public", "readonly", "ref", "return", "sbyte", "sealed", "short", "sizeof", "stackalloc", "static", "string", "struct", "switch", "this", "throw", "true", "try", "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort", "using", "virtual", "void", "volatile", "while", "add", "alias", "ascending", "async", "await", "descending", "dynamic", "from", "get", "global", "group", "into", "join", "let", "orderby", "partial", "remove", "select", "set", "value", "var", "where", "yield" };
            KeywordColor = Color.Blue;

            Functions = new string[] { "public", "private", "class" };
            FunctionColor = Color.Blue;

            Strings = new string[] { };

            WhiteSpace = new string[] { };

            CommentTags = "//";
            CommentColor = Color.Gray;

            SpecilChars = "";

        }
        public void SetWordsColor(System.Windows.Forms.RichTextBox rtb)
        {
            rtb.SelectAll();
            rtb.SelectionColor = Color.Black;
            string text = rtb.Text;
            SetHighLight(rtb, text, Keywords, KeywordColor);
            SetHighLight(rtb, text, Functions, FunctionColor);
            SetHighLight(rtb, text, new string[] { CommentTags }, CommentColor, CodeType.COMMENT);
        }
    }
}
